高性能Jave SAX解析器的设计和实现
XML(eXtensible Markup Language)是W3C定义的一种标记语言,利用XML可以在一个可编辑的正文文件中描述结构化/半结构化的数据.目前,XML被广泛应用于Web环境下的数据传输与交换、数据集成、文档存储等应用中.XML解析的SAX(Simple API for XML)接口由一个名为XML-DEV的讨论组提出,在解析XML文档的时候可以触发一系列的事件供用户处理.虽然该API没有成为官方推荐的标准,但因为它的性能优势和简单易用,实际上已被开发者和最终用户广为使用. 该文根据SAX接口的特点,设计和实现了一个高性能的SAX解析器OnceSAXParser.Once SAXParser具有完备的XML解析功能,灵活的可配置可扩展结构.另外在设计中,我们采用了简单实用的数据结构设计,从词法分析器的有限自动机优化、缓冲管理以及SAX语法分析器状态化简等多个方面着手提高性能,并尝试了采用对象池管理对象的创建、销毁以减少JVM(Java VirtualMachine)中小对象的数量.另外,对语言层面的优化也做了一些有益的探讨. 为了确保Once SAXParser具有XML和SAX API兼容性,该文对OnceSAXParser进行了严格的兼容性测试.测试程序扩展了JUnit自动化测试框架,针对两千多个XML测试文档能自动地测试Once SAXParser的处理是否符合XML规范.Once SAXParser成功通过了XML和SAX API兼容性测试,优于大多数同类产品. 该文最后使用Sun公司的XML性能测试工具XML Test测试了OnceSAXParser和目前广泛使用的Xerces解析器,测试结果表明前者的性能比后者平均高出30%左右,这说明在保证功能完整的情况下,Once SAXParser具有高效的解析性能.
- 作者:
- 汪剑超
- 学位授予单位:
- 中国科学院研究生院(软件研究所)
- 专业名称:
- 计算机软件与理论
- 授予学位:
- 硕士
- 学位年度:
- 2005年
- 导师姓名:
- 金蓓弘
- 中图分类号:
- TP311.11
- 关键词:
- XML;SAX解析器;有限自动机;兼容性测试;性能优化
- XML;SAX Parser;Finite Automaton;Comformance Test;Performance Test;Performance tuning